In recent years, microprocessors have been used for controlling various equipment in many fields from audio devices to industrial machines. With regard to a microprocessor for integration used for controlling specific equipment, such as a one-chip type microcomputer, it has been desired to make full use of a memory resource which is strictly limited due to a demand for realizing small and low-cost equipment.
FIG. 1 shows a constitutional example of data publication/referencing between conventional software modules integrated within an EFI-ECU (Electronic Fuel Injection-Electronic Control Unit), which is a system for electronically controlling fuel injection in a vehicle.
In FIG. 1, a public module 1 is a software module which operates for updating a data in a predetermined RAM (Random Access Memory) area (public file RAM 11, in the present example). The data in RAM 11 is available to be referenced by other software modules. On the other hand, a referencing module 2 is a software module which operates based on a data obtained by referring a data in the public file RAM 11 or by copying the data to its own file RAM 21 to 23.
There exist various ECUs such as EFI, ABS, security (body), etc. ECUs, within a vehicle. Each ECU has integrated therein a CPU or the like, which is necessary for control (for example, for controlling injection). In a software module library (firmware) integrated in an one-chip CPU circuit, or the like, within the EFI-ECU, the side which updates a data in a predetermined file is called a public module 1, and the side which operates by referring the updated data is called a referencing module 2.
FIG. 1 shows an example of a data structure of a conventional public file RAM 11. In the case of an EFI-ECU, there exist various public data such as the number of rotations of the engine, the water temperature and intake temperature, etc. The present example shows an example of the number of rotations of the engine (NE). When the pubic module 1 detects the current number of rotations of the engine of 1000 rpm, the number is replaced by 1 byte of hexadecimal data (14 Hex) to update the public file 11, due to the demand for saving memory.
In the above-mentioned example, the LSB (Least Significant Bit) of 1 byte data is previously assigned a predetermined default value, for example, LSB=50 rpm, etc., by a designer. Conventionally, each software module is developed and designed and has such a default LSB value as a precondition.
However, if, for example, the default LBS value is changed from 50 to 20 because of a design change or the like, all corresponding referencing modules 2 must be changed. This is a large problem in the point of inheritance of software, including verifying operations of the software after the change.
In the example of FIG. 1, it is necessary to change the processes, of all referencing modules 2, from a process using LSB=50 to one using LSB=20. Also, because software developers must be aware of the LSB value at the side of the public module 1 when designing and developing a software, a load is put on the developers for developing a new software at the time of updating the product, or the like.
Further, when a data with an integer value is changed to decimal notation, so as to be processed with higher accuracy, in response to the request from a user, etc., 4 bytes of the floating-point data is needed in addition to the 1 byte of the integer data. Then, the small memory resource available to the integrated circuit is further consumed.